/**
 * 
 */
package mx.com.asteca.servicio.impl;

import java.util.List;

import mx.com.asteca.comun.Constantes;
import mx.com.asteca.comun.dto.SeguridadUsrLnDTO;
import mx.com.asteca.persistencia.PersistenciaException;
import mx.com.asteca.persistencia.dao.BaseDAO;
import mx.com.asteca.persistencia.dao.SeguridadUsrLnDAO;
import mx.com.asteca.persistencia.entidades.SeguridadUsrLn;
import mx.com.asteca.servicio.SeguridadUsrLnServicio;
import mx.com.asteca.servicio.ServicioException;
import mx.com.asteca.servicio.assembler.Assembler;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author JAMARO
 *
 */
@Service
public class SeguridadUsrLnServicioImpl extends
		BaseServiceImpl<SeguridadUsrLnDTO, Integer, SeguridadUsrLn> implements
		SeguridadUsrLnServicio {

	@Autowired
	private SeguridadUsrLnDAO dao;
	
	@Autowired
	@Qualifier(Constantes.ASSEMBLER_SEGURIDAD_USR_LN)
	private Assembler assembler;
	
	@Override
	BaseDAO getDAO() {
		return dao;
	}

	@Override
	Assembler getAssembler() {
		return assembler;
	}
	
	@Override
	@Transactional(readOnly=true)
	public List<SeguridadUsrLnDTO> findByIdSeguridad(int idSeguridad) throws ServicioException{
		try{
			List<SeguridadUsrLn> listaMapping = dao.findBySeguridadId(idSeguridad);
			List<SeguridadUsrLnDTO> listaDTO = assembler.getDTOListTransform(listaMapping);
			return listaDTO;
		}catch(PersistenciaException e){
			throw new ServicioException("Error en findByIdSeguridad: "+e.getMessage(), e);
		}
	}

}
